#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 文件名：server.py
# 当前用户：李峰
# 当前时间：2025/6/23 21:12
import os
from flask import Blueprint
from flask import request, send_from_directory, jsonify
bp = Blueprint('server', __name__)
# 获取项目的根目录即 online-flask-server的外层目录，因为需下载的文件【online-log-intelligent-monitoring】项目下
top_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
app_dir =os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# 构造线上日志监控文件所在文件路径
datas_dir = os.path.join(top_dir,"online-log-intelligent-monitoring/datas")
# 案例文件：online_log_example.xlsx
# print(datas_dir)
testcase_dir = os.path.join(app_dir,"datas")
# print(testcase_dir)
# 定义线上日志监控巡检 Excel 文件的接口
@bp.route('/download_excel', methods=['GET'])
def download_excel():
    try:
        # 获取请求参数中的文件名
        file_name = request.args.get('file_name')
        file_path = os.path.join(datas_dir,file_name)
        print(file_path)
        # 检查文件是否存在
        if not os.path.exists(file_path):
            return jsonify({'error': 'File not found'}), 404

        # 返回文件下载响应
        return send_from_directory(datas_dir, file_name, as_attachment=True)
    except Exception as e:
        return jsonify({'error': str(e)}), 500
    #生产调用方式：http://113.108.148.234:11185/download_excel?file_name=xxx.xlsx
# 定义下载测试用例接口
@bp.route('/download_testcase', methods=['GET'])
def download_testcase():
    try:
        # 获取请求参数中的文件名
        file_name = request.args.get('file_name')
        file_path = os.path.join(testcase_dir,file_name)
        print(file_path)
        # 检查文件是否存在
        if not os.path.exists(file_path):
            return jsonify({'error': '文件未找到'}), 404

        # 返回文件下载响应
        return send_from_directory(testcase_dir, file_name, as_attachment=True)
    except Exception as e:
        return jsonify({'error': str(e)}), 500
    # 生产调用方式：http://113.108.148.234:11185/download_testcase?file_name=xxx.xlsx
